<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8">
    <title><{$conf.installer.title}></title>
    <{css src="framework.css?v=5.0"}>
    <{css src="installer.css?v=5.0"}>
    <style>
        <{$conf.installer.style}>
    </style>
    <{script src="moo.js"}>
    <{script src="taskRunner.js"}>
    <script>
        _open = function(url,options){
            options = $extend({
                width:window.getSize().x*0.8,
                height:window.getSize().y*0.8
            },options||{})
            var params = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width={width},height={height}';
            params = params.substitute(options);

            window.open(url||'about:blank','_blank',params);

        };
        Element.implement({
            isDisplay:function(){return true;}
        });
        var validateMap=new Hash({
            'required':['本项必填',function(element,v){
                return v!=null && v!=''&& v.trim()!='';
            }],
            'number':['请录入数值',function(element,v){
                return v==null || v=='' || !isNaN(v) && !/^\s+$/.test(v);
            }],
            'samePas':['两次密码输入不一致',function(element,v){
                var parEl = element.getParent(".tableform").getElements("input")[1];
                return parEl.value === v;
            }]
        });

    </script>
</head>
<body>
<div class="container">
    <div class="logo">
        <div class="banner"><{$conf.installer.banner}></div>
    </div>

    <div class="container-all">
        <div class="installer-main clearfix" id="installer-body">
            <form id="installer_check_form" action="" method="post">
                <input type="hidden" name="dfd" value="dfd" />
                <{if $serverinfo}>
                <{foreach from=$serverinfo.data item=group key=name}>
                <div class="installer-detection">
                    <div class="installer-detection-title">
                        <h4><{$name}></h4>
                    </div>
                    <table class="tableform">
                        <{foreach from=$group.items item=item key=key}>
                        <tr>
                            <th><{$key}></th>
                            <td><span class="installer-detection-success <{if $item.result==0}>installer-detection-failure<{/if}>"><{$item.value}></span></td>
                        </tr>
                        <{/foreach}>
                    </table>
                    <{/foreach}>
                    <div class="right-main-btn"><input type="button" class="taskstepbutton-start taskstepbutton-detection" onclick="document.getElementById('installer_check_form').submit();" value="<{t}>重新检测<{/t}>" /></div>
            </form>
        </div>
        <{else}>
        <div class="installer-steps">
            <div class="installer-steps-main">
                <ul>
                    <li class="step-installing1"><em>1</em><span><{t}>软件协议<{/t}></span></li>
                    <li class="installer-step2"><em>2</em><span><{t}>环境检测<{/t}></span></li>
                    <li class="installer-step3"><em>3</em><span><{t}>信息配置<{/t}></span></li>
                    <li class="installer-step4"><em>4</em><span><{t}>安装软件包<{/t}></span></li>
                </ul>
            </div>
        </div>

        <div class="installer-info">
            <div class="right-main complete">
                <div class="right-main-info ">
                    <div class="info-license">
                        <div class="license">
                            <div style="width:100%;height:260px;overflow: scroll;overflow-x:hidden;">
                                <h3>软件协议</h3>
                                <h4>
                                    商派ECStore在线零售应用软件为商派软件有限公司（以下简称ShopEx）独立开发的软件，ShopEx依法享有该软件之版权和著作权等知识产权，该软件的中国国家版权局著作权登记号为：2014SR217135。</h4>
                                <p style="text-align: left;font-size:14px;">
                                    ShopEx以授权的形式提供商派ECStore在线零售应用软件供您使用，您必须在完全遵守本最终用户授权协议的基础上使用本软件。但该软件的被授权使用者（含法人或其它组织）：</p>
                                <br>
                                <div style="text-align: left;font-size:14px; margin-bottom: 10px;">
                                    <li>
                                        <p> 1.ShopEx社区开源版仅供个人开发学习使用。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>2.未获商业授权之前，不得将本软件用于商业用途（包括但不限于企业网站、经营性网站、以营利为目或实现盈利及具有同等或类似功能的网站）。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>3.不得对本软件或与之关联的商业授权进行出租、出售、抵押或发放子许可证等。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>4.ShopEx将本软件提供给授权用户，同时提供软件的安装说明、使用说明等文档，授权网站、用户依法享有该软件的使用权。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>5.授权用户拥有其系统内全部会员资料、商品资料、订单资料及相关信息的所有权，并独立承担相关法律义务。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>6.利用本授权软件发生的商业行为均由授权用户自行负责，利用本软件进行商业行为所产生的一切纠纷均与ShopEx无关；</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            7.为方便用户使用，软件内置了譬如网上支付网关等诸多第三方系统。但您应自行评估使用这些系统的风险。这些系统的具体开通与服务由相应第三方公司提供，由此而产生的任何商业纠纷，均与ShopEx无关；</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            8.授权用户使用ECStore电子商务在线零售应用软件期间,按原厂保修的服务类型确定的技术支持期限、技术支持方式和技术支持内容，在技术支持期限内通过指定的方式获得指定范围内的技术支持。被授权用户享有反映和提出意见的权力，相关意见将被作为首要考虑，但没有一定被采纳的承诺或保证。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            9.软件的收费服务是指对购买付费技术支持的用户在相应年限内对许可软件提供必要的支持，支持范围包括软件安装、调试、升级和使用过程中出现的等问题，或是因为软件本身的错误引起的问题提供必要的支持。收费技术支持的内容并不包括授权用户因为自身需要而要求调整、增加或者定制功能的内容，授权用户如有这方面的需要，可向ShopEx已认证服务商提出，并与该服务商另行签署协议。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            10.授权软件升级前授权用户应自行备份数据，升级过程中造成的授权用户数据丢失的ShopEx不承担责任。此修复或重新安装不能保证软件恢复到损坏前的状态，所造成的数据丢失ShopEx不承担责任。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>11.ShopEx不对因授权软件使用错误、软件错误等问题所引起的授权用户损失而承担任何责任，但ShopEx将尽量避免此类情况的发生。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            12.未经ShopEx事先书面授权许可，授权用户不得向任何第三方提供为适应自身需要而改进的ECStore电子商务在线零售应用软件。如果为授权用户所进行的这种改进涉及到许可软件，则ShopEx将拥有对该改进进行再发展的相关权利，以及将其产品投放市场或许可给第三方的权利。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            13.有关ECStore电子商务在线零售应用软件包含的服务范围，服务付费方式等，ShopEx官方网站提供惟一的解释和官方价目表。ShopEx拥有在不事先通知的情况下，修改授权协议和价目表的权力，修改后的协议或价目表对自改变之日起的新授权用户生效。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>14.您必须充分了解使用本软件的用途和风险。十分必要时，ShopEx所承担的责任仅限于软件版本的维护。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            15.您不得在非授权的情况下，私自去除ShopEx软件前台、后台版权，如有以上行为发生，将视为您侵犯了ShopEx的知识产权，ShopEx将保留起诉、追究法律责任并要求获得赔偿的权利；</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>16.如您私自选择非ShopEx认证的开发伙伴为自身需要对ECStore电子商务在线零售应用软件进行改造，则自动默认放弃本软件所有权利，
                                            ShopEx将保留起诉、追究法律责任并要求获得赔偿的权利；</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>
                                            17.电子文本形式的授权协议如同双方书面签署的协议一样，具有完全的和等同的法律效力。您一旦开始安装ShopEx软件，即被视为完全理解并接受本协议的各项条款，在享有上述条款授予的权力的同时，受到相关的约束和限制。协议许可范围以外的行为，将直接违反本授权协议并构成侵权，我们有权随时终止授权，责令停止损害，并保留追究相关责任的权力。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>18.不得有其他侵犯ShopEx软件版权或权益之行为。</p>
                                    </li>
                                    <br>
                                    <li>
                                        <p>19.如果授权用户未能遵守本协议的条款，授权用户的授权将被终止，所被许可的权利将被收回。</p>
                                    </li>
                                    <br>
                                </div>
                                <p style="font-size: 14px;text-align: left;font-weight: bold;">
                                    对违反此授权协议行为的个人、法人或其它组织，必须立即停止其行为，并对其造成的一切不良后果承担全部责任。ShopEx有权立即取消对其的软件授权。对此前，尤其是此后的行为，将依据《著作权法》、《计算机软件保护条例》等相关法律、法规追究其经济和法律责任。</p>
                                <h4>ShopEx保留对此协议的最终解释权，任何站点使用本软件则表示默认接受此协议。</h4>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="right-main-btn">&nbsp;
                    <input type="button" class="taskstepbutton taskstepbutton_out taskstepbutton_move" value="<{t}>下一步<{/t}>"/>&nbsp;
                </div>
            </div>

            <div class="right-main" style="display:none">
                <div class="right-main-info">
                    <div class="right-main-info" style="width:100%;height:260px;overflow: scroll;overflow-x:hidden;">
                        <form action="" method="post">
                            <input type="hidden" name="dfd" value="dfd" />
                            <{foreach from=$serverinfos.data item=group key=name}>
                            <div class="installer-detection" style="width: 646px;background:repeat-x top left;">
                                <table class="tableform">
                                    <colgroup>
                                        <col style="width:300px">
                                    </colgroup>
                                    <{foreach from=$group.items item=item key=key}>
                                    <tr>
                                        <th><{$key}></th>
                                        <td><span class="installer-detection-success <{if $item.result==0}>installer-detection-failure<{/if}>"><{$item.value}></span></td>
                                    </tr>
                                    <{/foreach}>
                                </table>
                            </div>
                            <{/foreach}>
                        </form>
                    </div>
                </div>
                <div class="right-main-btn">
                    <a class="step-back" href="process" onClick="Cookie.dispose('setup_Step')"><上一步</a>
                    &nbsp;&nbsp;&nbsp;&nbsp;
                    <{if $checking == true}>
                    <input type="button" class="step-btn taskstepbutton-next1 "  value="<{t}>下一步<{/t}>" />
                    <{else}>
                    <input type="button" class="step-btn taskstepbutton-next1-disabled "value="<{t}>下一步<{/t}>" />
                    <{/if}>
                </div>
            </div>

            <div class="right-main" style="display:none">
                <div class="right-main-info">
                    <div class="info-license" id="taskconfig">
                        <{foreach from=$install_options item=group key=app_id}>
                        <h4><{$apps[$app_id].name}></h4>
                        <table class="tableform">
                            <{foreach from=$group item=item key=key}>
                            <tr>
                                <th>
                                    <{if $item['required'] == true}><em style="padding-right:4px"><font color="red">*</font></em><{/if}><label><{$item.title}></label>
                                </th>
                                <td><{input params=$item class="tasks_ipt" name="options[{$app_id}][{$key}]"}></td>
                            </tr>
                            <{/foreach}>
                        </table>
                        <{/foreach}>
                    </div>
                    <div class="info-license" id="taskdemodata">
                        <{foreach from=$install_demodata_options item=demo_item key=key}>
                        <h4><{$demo_item.name}></h4>
                        <table class="tableform">
                            <tr>
                                <th>
                                    <{if $demo_item['required'] == true}><em style="padding-right:4px"><font color="red">*</font></em><{/if}><label><{$demo_item.title}></label>
                                </th>
                                <td><{input params=$demo_item class="tasks_ipt" name="options[{$key}][{$key}]"}></td>
                            </tr>
                        </table>
                        <{/foreach}>
                    </div>
                </div>
                <div class="right-main-btn"><a class="step-back" href="process" onClick="Cookie.dispose('setup_Step')"><上一步</a>&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" class="taskstepbutton-start taskstepbutton-startin tasks_start" id="task_install" value="<{t}>开始安装软件<{/t}>" /></div>
            </div>

            <div class="right-main" style="display:none">
                <div class="console_handle">
                    <span class="flt" style="color:#333; margin-left:10px;"><{t}>系统正在安装...<{/t}></span>
                </div>
                <div class="clear loadpart">
                    <div  class="loader"><strong class="appNum"></strong></div>
                </div>
                <div  class="btnbox">
                    <span class="flt" style="margin-left:10px"><{t}>app名称：<{/t}><span class="appName"></span></span>
                    <span class="lnk frt" onclick="$('setupinfo').toggleClass('hide');"><{t}>安装细节<{/t}>&raquo;</span>
                </div>

                <div class="right-main-info hide" id="setupinfo">
                    <{foreach from=$apps item=app key="app_id"}>
                    <div class="clearfix box item package" appname="<{$app.name}>" action="<{link ctl="default" act=install_app}>?app=<{$app_id}>">
                    <img src="%BASE_URL%/app/<{$app_id}>/icon.png" style="float:left;margin-right:10px" width="32px" height="32px" />
                    <div class="span-3 name">
                        <strong><{$app.name}></strong><{if $app.version}><sup><{$app.version}></sup><{/if}>
                    </div>
                    <div class="span-auto desc">
                        <{$app.description}>
                    </div>
                </div>
                <{/foreach}>
                <{if $demodata.install == 'true'}>
                <div id="setupinfo_demodata" class="clearfix box item package" appname="<{$demodata.name}>" action="<{link ctl="default" act="install_demodata"}>">
                <img src="%BASE_URL%/app/<{$app_id}>/icon.png" style="float:left;margin-right:10px" width="32px" height="32px" />
                <div class="span-3 name">
                    <strong><{$demodata.name}></strong>
                </div>
                <div class="span-auto desc">
                    <{$demodata.description}>
                </div>
            </div>
            <{/if}>
            <span class="lnk frt" style="padding:4px 0 0 0;" onclick="_open('?console=true');"><{t}>打开安装控制台<{/t}>&raquo;</span>
        </div>

    </div>

</div>
<{/if}>
</div>
</div>

<div class="copyright">Powered by <a href="http://www.shopex.cn" target="_blank">ShopEx</a></div>
<iframe name="console-frame" id="console-frame" style="display:none" src="about:blank" tabindex='-1'></iframe>
</div>
<script>
    window.addEvent('domready',function(){

        var main=$('installer-body'), item= main.getElements('.right-main'),
            item_tip=$$('.installer-steps-main li'),
            // $checking = "<{$checking}>";
            $checking = 'false';
        tasks_setup={
            tasks_start:function(){
                var result=validate($('taskconfig'),'div');
                if(!result)return;
                item[1].addClass('complete');
            },
            recovery:function(){
                var arr=['step-installed','step-installed','step-installing','installer-step'];
                item_tip.each(function(tip,i){
                    tip.className=arr[i]+(i+1);
                    item[i].style.display=(i==2)?'':'none';
                });
            }
        };

        var step=Cookie.read('setup_Step');
        // if(step&&step!=1)tasks_setup.recovery();
        if(step == 2){
            if($checking =='false'){
                var arr=['step-installed','step-installing','installer-step','installer-step'];
                item_tip.each(function(tip,i){
                    tip.className=arr[i]+(i+1);
                    item[i].style.display=(i==1)?'':'none';
                });
            }
        }
        var installer = new Object();
        setuptools={
            init:function(){
                var tasks=[];
                $$('.box').each(function(el){if (!el.hasClass('disabled'))tasks.push(el.get('action'))});

                installer = new TaskRunner(tasks,{
                    iframe:$('console-frame'),
                    container:main,
                    onError:function(text){
                        Cookie.dispose('setup_Step');
                        text+='\n是否返回上一步?';
                        if(window.confirm(text))
                            tasks_setup.recovery();

                    },
                    onLoader:function(){

                        var num=this.step/this.num*100;
                        this.showStep.set('text',num.toInt()+'%');
                        this.showStep.getParent().setStyle('width',num+'%');
                    },
                    onSuccess:function(){
                        Cookie.dispose('setup_Step');
                        location.href='<{$success_page}>';
                    }
                });
            },
            check:function(app, method, e){
                var option={onComplete:function(json){
                        if(json.error)alert('error');
                    }};
                this.request('setuptools?app='+app+'&method='+method,option);
            },
            getdata:function(app, method, e){
                var el=$(e);
                var option={onComplete:function(json){
                        var selected=el.getSelected()?el.getSelected().value:'';
                        el.empty();
                        var fdoc = document.createDocumentFragment();
                        $H(json).each(function(k,v){
                            if(k == selected){
                                var option_el = {'value':k,'text':v,'selected':true};
                            }else{
                                var option_el = {'value':k,'text':v};
                            }
                            fdoc.appendChild(new Element('option', option_el));
                        });
                        el.appendChild(fdoc);
                    }};
                this.request('setuptools?app='+app+'&method='+method,option);
            },
            request:function(url,options){
                new Request.JSON($extend(options,{url:url,data:$$('.installer-info')[0]})).post();
            }
        };

        setuptools.init();

        /** demo数据的确认 **/
        var _demodata = $$("select[name^='options[demodata]']");
        if (_demodata){
            _demodata.addEvent('change',function(el){
                var _target = $(el.target)||$(el);
                if (_target.value == '1'){
                    $('setupinfo_demodata').addClass('disabled');
                    $('setupinfo_demodata').style.display = 'none';
                }else{
                    $('setupinfo_demodata').removeClass('disabled');
                    $('setupinfo_demodata').style.display = 'block';
                }
                setuptools.init();
            });
        }

        ['taskstepbutton','taskstepbutton-next1','tasks_start'].each(function(el,index){
            if(main.getElement('.'+el))
                main.getElement('.'+el).addEvent('click',function(e){
                    if(tasks_setup[el])tasks_setup[el]();
                    item[index].style.display='none';
                    var i=index+1;
                    item[i].style.display='';
                    item_tip[index].className='step-installed'+i;
                    item_tip[i].className='step-installing'+(i+1);

                    if(index-1>=0)item_tip[index-1].addClass('step-installed');

                    Cookie.write('setup_Step',i+1);
                    if(i==item.length-1){

                        installer.run('<{link ctl='default' act=initenv }>');
                    }
                });
        });

    });

</script>
</body>
</html>
